A non-volatile memory capable of storing a large amount of data frequently has drawbacks such slower input/output speeds as compared to volatile, smaller capacity memories. Conversely, smaller, volatile memories which may be faster to operate, may have a greater cost to store data on a per bit basis, as compared to larger capacity non-volatile memories. Further, data stored in a volatile memory may be lost in the event of a loss of power or a system reset. Accordingly, computer systems may employ a two-level memory system, often referred to as a “heterogeneous” memory system employing a smaller, faster volatile memory as a cache memory for a second, larger and frequently slower memory which may be a non-volatile memory.